/**
 * 
 */
package co.com.sed.model.beans;

import java.util.ArrayList;
import java.util.Date;

/**
 * @author Mejia
 *
 */
public class Funcionario {
	private int idFuncionario;
	private String identificacion;
	private String apellidos;
	private String nombres;
	private Date fechaNacimiento;
	private String direccion;
	private String ciudad;
	private String telefono;
	private String email;
	private Cargo cargo;
	private Sitio sitio;
	
	private ArrayList<Evaluacion360> evaluaciones360 = null;
	private ArrayList<EvaluacionEVC> evaluacionesEVC = null;
	private ArrayList<Eval360Indi> evales360Indi = null;
	private ArrayList<EvalEVCIndi> evalesEVCIndi = null;
	private ArrayList<Usuario> usuarios = null;
		 
	/**
	 * 
	 */
	public Funcionario() {
		super();
		this.usuarios = new ArrayList<Usuario>();
		this.evaluaciones360 = new ArrayList<Evaluacion360>();
		this.evaluacionesEVC = new ArrayList<EvaluacionEVC>();
		this.evales360Indi  = new ArrayList<Eval360Indi>();
		this.evalesEVCIndi = new ArrayList<EvalEVCIndi>();
		
		// TODO Auto-generated constructor stub
	}
	
	public Funcionario(int id_funcionario) {
		super();
		this.idFuncionario = id_funcionario;
	}

	/**
	 * @param identificacion
	 * @param apellido
	 * @param nombres
	 * @param fechaNacimiento
	 * @param direccion
	 * @param ciudad
	 * @param telefono
	 * @param email
	 * @param cargo
	 * @param sitio
	 */
	
	
	
	
	public Funcionario(int id_funcionario, String identificacion, String apellidos, String nombres,
			Date fechaNacimiento, String direccion, String ciudad,
			String telefono, String email, int id_cargo, int id_sitio, 
			ArrayList<Evaluacion360> evaluaciones360, ArrayList<EvaluacionEVC> evaluacionesEVC, 
			ArrayList<Eval360Indi> evales360Indi, ArrayList<EvalEVCIndi> evalesEVCIndi, 
			ArrayList<Usuario> usuarios) {
		super();
		this.idFuncionario = id_funcionario;
		this.identificacion = identificacion;
		this.apellidos = apellidos;
		this.nombres = nombres;
		this.fechaNacimiento = fechaNacimiento;
		this.direccion = direccion;
		this.ciudad = ciudad;
		this.telefono = telefono;
		this.email = email;
		this.cargo = new Cargo(id_cargo);
		this.sitio = new Sitio(id_sitio);
		
		this.usuarios = new ArrayList<Usuario>();
		this.evaluaciones360 = new ArrayList<Evaluacion360>();
		this.evaluacionesEVC = new ArrayList<EvaluacionEVC>();
		this.evales360Indi  = new ArrayList<Eval360Indi>();
		this.evalesEVCIndi = new ArrayList<EvalEVCIndi>();
				
	}



	public Funcionario(int id_funcionario, String identificacion, String apellidos, String nombres,
			Date fechaNacimiento, String direccion, String ciudad,
			String telefono, String email, int id_cargo, int id_sitio) {
		super();
		this.idFuncionario = id_funcionario;
		this.identificacion = identificacion;
		this.apellidos = apellidos;
		this.nombres = nombres;
		this.fechaNacimiento = fechaNacimiento;
		this.direccion = direccion;
		this.ciudad = ciudad;
		this.telefono = telefono;
		this.email = email;
		this.cargo = new Cargo(id_cargo);
		this.sitio = new Sitio(id_sitio);
						
	}

	
	public Funcionario( String identificacion, String apellidos, String nombres,
			Date fechaNacimiento, String direccion, String ciudad,
			String telefono, String email, int id_cargo, int id_sitio) {
		super();
		
		this.identificacion = identificacion;
		this.apellidos = apellidos;
		this.nombres = nombres;
		this.fechaNacimiento = fechaNacimiento;
		this.direccion = direccion;
		this.ciudad = ciudad;
		this.telefono = telefono;
		this.email = email;
		this.cargo = new Cargo(id_cargo);
		this.sitio = new Sitio(id_sitio);
						
	}
	

	/**
	 * @return the idFuncionario
	 */
	public int getIdFuncionario() {
		return idFuncionario;
	}

	/**
	 * @param idFuncionario the idFuncionario to set
	 */
	public void setIdFuncionario(int idFuncionario) {
		this.idFuncionario = idFuncionario;
	}

	/**
	 * @return the identificacion
	 */
	public String getIdentificacion() {
		return identificacion;
	}

	/**
	 * @param identificacion the identificacion to set
	 */
	public void setIdentificacion(String identificacion) {
		this.identificacion = identificacion;
	}

	/**
	 * @return the apellidos
	 */
	public String getApellidos() {
		return apellidos;
	}

	/**
	 * @param apellidos the apellidos to set
	 */
	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}

	/**
	 * @return the nombres
	 */
	public String getNombres() {
		return nombres;
	}

	/**
	 * @param nombres the nombres to set
	 */
	public void setNombres(String nombres) {
		this.nombres = nombres;
	}

	/**
	 * @return the fechaNacimiento
	 */
	public Date getFechaNacimiento() {
		return fechaNacimiento;
	}

	/**
	 * @param fechaNacimiento the fechaNacimiento to set
	 */
	public void setFechaNacimiento(Date fechaNacimiento) {
		this.fechaNacimiento = fechaNacimiento;
	}

	/**
	 * @return the direccion
	 */
	public String getDireccion() {
		return direccion;
	}

	/**
	 * @param direccion the direccion to set
	 */
	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	/**
	 * @return the ciudad
	 */
	public String getCiudad() {
		return ciudad;
	}

	/**
	 * @param ciudad the ciudad to set
	 */
	public void setCiudad(String ciudad) {
		this.ciudad = ciudad;
	}

	/**
	 * @return the telefono
	 */
	public String getTelefono() {
		return telefono;
	}

	/**
	 * @param telefono the telefono to set
	 */
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	/**
	 * @return the email
	 */
	public String getEmail() {
		return email;
	}

	/**
	 * @param email the email to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * @return the cargo
	 */
	public Cargo getCargo() {
		return cargo;
	}

	/**
	 * @param cargo the cargo to set
	 */
	public void setCargo(Cargo cargo) {
		this.cargo = cargo;
	}

	/**
	 * @return the sitio
	 */
	public Sitio getSitio() {
		return sitio;
	}

	/**
	 * @param sitio the sitio to set
	 */
	public void setSitio(Sitio sitio) {
		this.sitio = sitio;
	}
	
	public ArrayList<Evaluacion360> getEvaluaciones360() {
		return evaluaciones360;
	}

	public void setEvaluaciones360(ArrayList<Evaluacion360> evaluaciones360) {
		this.evaluaciones360 = evaluaciones360;
		
		for(Evaluacion360 evaluacion360 : this.evaluaciones360){
			evaluacion360.setEvaluado(this);
		}
		
	}
	
	public ArrayList<EvaluacionEVC> getEvaluacionesEVC () {
		return evaluacionesEVC;
	}

	public void setEvaluacionesEVC(ArrayList<EvaluacionEVC> evaluacionesEVC) {
		this.evaluacionesEVC = evaluacionesEVC;
		
		for(EvaluacionEVC evaluacionEVC : this.evaluacionesEVC){
			evaluacionEVC.setEvaluado(this);
		}
	
	}
	
	public ArrayList<Eval360Indi> getEvales360Indi () {
		return evales360Indi;
	}

	public void setEvales360Indi(ArrayList<Eval360Indi> evales360Indi) {
		this.evales360Indi = evales360Indi;
		
		for(Eval360Indi eval360Indi : this.evales360Indi){
			eval360Indi.setEvaluador(this);
		}
	
	}
	
	public ArrayList<EvalEVCIndi> getEvalesEVCIndi () {
		return evalesEVCIndi;
	}

	public void setEvalesEVCIndi(ArrayList<EvalEVCIndi> evalesEVCIndi) {
		this.evalesEVCIndi = evalesEVCIndi;
		
		for(EvalEVCIndi evalEVCIndi : this.evalesEVCIndi){
			evalEVCIndi.setEvaluador(this);
		}
	
	}
	
	public ArrayList<Usuario> getUsuarios () {
		return usuarios;
	}

	public void setUsuarios(ArrayList<Usuario> usuarios) {
		this.usuarios = usuarios;
		
		for(Usuario usuario : this.usuarios){
			usuario.setFuncionario(this);
		}
	
	}
	
}
